extern crate registry;
use std::os;
+use std::error;
use std::io::stdio::{stdout_raw, stderr_raw};
use std::io::{mod, stdout, stderr};
use rustc_serialize::{Decoder, Encoder, Decodable, Encodable};
#[macro_export]
macro_rules! try {
($expr:expr) => ({
- use cargo::util::FromError;
+ use std::error::FromError;
match $expr.map_err(FromError::from_error) {
Ok(val) => val,
Err(err) => return Err(err)
use std::io::fs::PathExtensions;
use core::{Package,Manifest,SourceId};
-use util::{mod, CargoResult, human, FromError};
+use util::{mod, CargoResult, human};
use util::important_paths::find_project_manifest_exact;
use util::toml::{Layout, project_layout};
+use std::error::FromError;
pub fn read_manifest(contents: &[u8], layout: Layout, source_id: &SourceId)
-> CargoResult<(Manifest, Vec<Path>)> {
use std::str;
use rustc_serialize::json;
use semver;
+use std::error::FromError;
use curl;
use docopt;
}
}
-pub trait FromError<E> {
- fn from_error(error: E) -> Self;
-}
-
impl<E: CargoError> FromError<E> for Box<CargoError> {
fn from_error(error: E) -> Box<CargoError> {
box error as Box<CargoError>
pub use self::process_builder::{process, ProcessBuilder};
pub use self::result::{Wrap, Require};
pub use self::errors::{CargoResult, CargoError, BoxError, ChainError, CliResult};
-pub use self::errors::{CliError, FromError, ProcessError};
+pub use self::errors::{CliError, ProcessError};
pub use self::errors::{process_error, internal_error, internal, human, caused_human};
pub use self::paths::{realpath, join_paths};
pub use self::lev_distance::{lev_distance};